using System.Windows.Input;

namespace Intuipic
{
	public static class Commands
	{
		public static readonly RoutedCommand ChooseFolders;
		public static readonly RoutedCommand CycleDisplayOrder;
		public static readonly RoutedCommand Previous;
		public static readonly RoutedCommand Next;
		public static readonly RoutedCommand PausePlay;
		public static readonly RoutedCommand IncreaseDelay;
		public static readonly RoutedCommand DecreaseDelay;
		public static readonly RoutedCommand MarkAsDeleted;
		public static readonly RoutedCommand Information;
		public static readonly RoutedCommand Minimize;
		public static readonly RoutedCommand Close;

		static Commands()
		{
			InputGestureCollection inputGestures = new InputGestureCollection();
			inputGestures.Add(new KeyGesture(Key.O, ModifierKeys.Control, "Ctrl+O"));
			ChooseFolders = new RoutedCommand("ChooseFolders", typeof(Commands), inputGestures);

			inputGestures = new InputGestureCollection();
			inputGestures.Add(new KeyGesture(Key.D, ModifierKeys.Control, "Ctrl+D"));
			CycleDisplayOrder = new RoutedCommand("CycleDisplayOrder", typeof(Commands), inputGestures);

			inputGestures = new InputGestureCollection();
			inputGestures.Add(new KeyGesture(Key.Left, ModifierKeys.None, "Left cursor"));
			Previous = new RoutedCommand("Previous", typeof(Commands), inputGestures);

			inputGestures = new InputGestureCollection();
			inputGestures.Add(new KeyGesture(Key.Right, ModifierKeys.None, "Right cursor"));
			Next = new RoutedCommand("Next", typeof(Commands), inputGestures);

			inputGestures = new InputGestureCollection();
			inputGestures.Add(new KeyGesture(Key.Space, ModifierKeys.None, "Space"));
			PausePlay = new RoutedCommand("PausePlay", typeof(Commands), inputGestures);

			inputGestures = new InputGestureCollection();
			inputGestures.Add(new KeyGesture(Key.Up, ModifierKeys.None, "Up cursor"));
			IncreaseDelay = new RoutedCommand("IncreaseDelay", typeof(Commands), inputGestures);

			inputGestures = new InputGestureCollection();
			inputGestures.Add(new KeyGesture(Key.Down, ModifierKeys.None, "Down cursor"));
			DecreaseDelay = new RoutedCommand("DecreaseDelay", typeof(Commands), inputGestures);

			inputGestures = new InputGestureCollection();
			inputGestures.Add(new KeyGesture(Key.Delete, ModifierKeys.None, "Delete"));
			MarkAsDeleted = new RoutedCommand("MarkAsDeleted", typeof(Commands), inputGestures);

			inputGestures = new InputGestureCollection();
			inputGestures.Add(new KeyGesture(Key.F1, ModifierKeys.None, "F1"));
			Information = new RoutedCommand("Information", typeof(Commands), inputGestures);

			Minimize = new RoutedCommand("Minimize", typeof(Commands));

			inputGestures = new InputGestureCollection();
			inputGestures.Add(new KeyGesture(Key.F4, ModifierKeys.Alt, "Alt+F4"));
			Close = new RoutedCommand("Close", typeof(Commands), inputGestures);
		}
	}
}
